namespace Anvil.Core.Commands
{
	/// <summary>
	/// Provide a base class for Controller commands (that don't need a Mapper). 
	/// </summary>
	/// <remarks><p>
	/// Rather than bind the Command to the Objects.Factory, 
	/// the Controller can be injected, either by a Test 
	/// or via the Commands.xml.
	/// </p></remarks>
	public abstract class BaseController : RequestCommand
	{
		/// <summary>
		/// Provide a field for Remark property.
		/// </summary>
		private string _Remark;

		/// <summary>
		/// Embed a remark into a command for future reference.
		/// </summary>
		public string Remark
		{
			get { return _Remark; }
			set { _Remark = value; }
		}

		/// <summary>
		/// Provide a field for Catalog property.
		/// </summary>
		private IRequestCatalog _Catalog;

		/// <summary>
		/// Provide instance of the catalog used to create this command.
		/// </summary>
		public IRequestCatalog Catalog
		{
			set { _Catalog = value; }
			get { return _Catalog; }
		}
	}
}